package control;


import java.util.ArrayList;
import java.util.List;

import javax.swing.table.AbstractTableModel;

import model.Chamado;
import model.Contato;
import model.ContatoBeijamim;

/**
 *
 * @author Rosicléia Frasson
 */
public class ChamadoTableModel extends AbstractTableModel {

    private static final int COL_CODIGO = 0;
    private static final int COL_USUARIO = 1;
    private static final int COL_LOJA = 2;
    private static final int COL_DATAABER = 3;
    //private static final int COL_DESCRICAO = 4;
    List<Chamado> linhas;
    private String[] colunas = new String[]{"Codigo","Usuario", "Loja", "Data Abertura"};

    public ChamadoTableModel(List<Chamado> contatos) {
        this.linhas = new ArrayList<>(contatos);
    }

    public int getRowCount() {
        return linhas.size();
    }

    public int getColumnCount() {
        return colunas.length;
    }

    public String getColumnName(int columnIndex) {
        return colunas[columnIndex];
    }

    public Class getColumnClass(int columnIndex) {
        if (columnIndex == COL_CODIGO) {
            return Integer.class;
        }
        return String.class;
    }

    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return false;
    }

    public Object getValueAt(int row, int column) {

        Chamado m = linhas.get(row);

        if (column == COL_CODIGO) {
            return m.getId();
        } else if (column == COL_USUARIO) {
            return m.getUsuario();
        } else if (column == COL_LOJA) {
            return m.getLoja();
        } else if(column == COL_DATAABER){ 
        	return m.getDataAbertura();
        }/* else if (column == COL_DESCRICAO) {
            return m.getDescricaoChamado();
        }*/
        return "";
    }


//  public void setValueAt(Object aValue, int row, int column) {
//      Contato u = linhas.get(row);
//      if (column == COL_ID) {
//          u.setId((Integer) aValue);
//      } else if (column == COL_NOME) {
//          u.setNome(aValue.toString());
//      } else if (column == COL_TELEFONE) {
//          u.setTelefone(aValue.toString());
//      } else if (column == COL_EMAIL) {
//          u.setEmail(aValue.toString());
//      }
//  }
    
    public Chamado getContato(int indiceLinha) {
        return linhas.get(indiceLinha);
    }

    public void addContato(Chamado contato) {
        linhas.add(contato);
        int ultimoIndice = getRowCount() - 1;
        fireTableRowsInserted(ultimoIndice, ultimoIndice);

    }

    public void updateContato(int indiceLinha, Chamado marca) {
        linhas.set(indiceLinha, marca);
        fireTableRowsUpdated(indiceLinha, indiceLinha);

    }

    public void removeContato(int indiceLinha) {
        linhas.remove(indiceLinha);
        fireTableRowsDeleted(indiceLinha, indiceLinha);

    }
}
